package my.myorm.tool.orm;

/**
 * 与数据表操作相关的辅助类
 *
 * @author Skeven Huang
 * @version 1.0
 */
public class TableUtil {
    /**
     * 判断一个表是否为分表
     *
     * @param table
     * @return
     */
    public static boolean isSubmeter(String table) {
        //以下划线和英文字母结尾
        if (table.indexOf("_") == -1) return false;
        String exes = TableBeanMap.getSplitSpec();
        String ex = table.toLowerCase().substring(table.lastIndexOf("_"));

        
        //如果是__*,则匹配任何__*
        if (exes.equals("__*") && table.indexOf("__") >= 0) {
        
        	if (table.toLowerCase().substring(table.lastIndexOf("__")).startsWith("__")) {
        	//	System.out.println("isSubmeter:" + true);
				return true;
			}
		}
        
        if (exes.indexOf(ex) > -1) return true;
 

        return false;
    }

    /**
     * 获取一个表的总表
     *
     * @param table
     * @return 若该表本身就是总表，则返回自身
     */
    public static String getSummary(String table) {
        if (isSubmeter(table)) {
            int index = table.lastIndexOf("_");
            
            //如果是__*,则匹配任何__*
            if (TableBeanMap.getSplitSpec().equals("__*") && table.indexOf("__") >= 0) {
            	index = table.lastIndexOf("__");
    		}
            
            //System.out.println("getSummary:" + table.substring(0, index));
            return table.substring(0, index);
        } else {
            return table;
        }
    }

}
